Collaborative 3d modeling system

ABSTRACT

A collaborative 3D modeling system, comprising a computer processing unit, a digital memory, and an electronic display, the computer processing unit and the digital memory configured to provide 3D model representations of a first plurality of versions of an object component for a first user, the versions being selectable along a first axis, and using the electronic display, provide a plurality of user identifications which are selectable along a second axis, wherein selecting a subsequent user causes a second plurality of said versions of said object component to be displayed on the electronic display.

CROSS REFERENCE TO RELATED APPLICATIONS

The present U.S. patent application is a continuation of U.S. patentapplication Ser. No. 15/821,831, filed Nov. 23, 2017, which claims thepriority benefit of U.S. Provisional Patent Application Ser. No.62/426,011, filed Nov. 23, 2016. The present U.S. patent application isalso related to and is a continuation-in-part of U.S. patent applicationSer. No. 15/801,320, filed Nov. 1, 2017, which claims the prioritybenefit of U.S. Provisional Patent Application Ser. No. 62/416,114,filed Nov. 1, 2016. The contents of all of the above applications arehereby incorporated by reference in their entirety into the presentdisclosure.

TECHNICAL FIELD

The present application relates to computer aided-design systems, andmore specifically, to a collaborative 3D computer modeling system.

BACKGROUND

Early-stage design is an essential part of the design process, as itallows designers to conceive and explore preliminary ideas whileinforming downstream processes. Its goal is not to generate full-fledgeddesigns, but rather to aid visual observation and communication ofcoarse mental images. Current design practices primarily utilizesketching and 3D modeling for early-stage ideation. While sketching isan efficient means for expressing ideas, it is limited to a singleviewpoint and also requires good drawing skills. Existing CAD tools onthe other hand were developed in the computer as a tool paradigm, whereit serves as a passive vessel for design. These methods failed to fullyleverage the computer-as-a-partner approach where the digital medium istreated as an active participant in a creative design process. As aresult, traditional CAD tools primarily serve final-stage detaileddesign processes, where expert-level design and tool operation skillsare required. They are not conducive towards quick capturing andrecording of fleeting ideas and rapid exploration of the design space,both of which are necessary to ensure a high quality end product andreduce design time and cost in downstream processes. Therefore,improvements are needed in the field.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects, features, and advantages of the presentinvention will become more apparent when taken in conjunction with thefollowing description and drawings wherein identical reference numeralshave been used, where possible, to designate identical features that arecommon to the figures, and wherein:

FIG. 1 depicts an overview of a 3D design modeling process according toone embodiment.

FIG. 2 depicts a user interface for the process of FIG. 1 according toone embodiment.

FIG. 3 depicts a modes of shape creating using the process of FIG. 1 forblobby and tubular shape creating according to one embodiment.

FIG. 4 depicts a template library for importing profile curves accordingto one embodiment.

FIG. 5 depicts four different profile curves for creating a blobby shapefrom a closed profile curve according to one embodiment.

FIG. 6 depicts generation of a tubular shape from a pair of rail curvesaccording to one embodiment.

FIG. 7 depicts creation of new shapes in-context of an existing designaccording to one embodiment.

FIG. 8 depicts 3D manipulation of an object using a manipulation widgetaccording to one embodiment.

FIG. 9 depicts shape manipulation of an object using the manipulationwidget of FIG. 8 according to one embodiment.

FIG. 10 depicts an overdrawing operation to modify shapes within a givendomain according to one embodiment.

FIG. 11 depicts examples of how the overdrawing operation of FIG. 10 isused to modify both profile curves of blobby shapes and rail curves oftubular shapes.

FIG. 12 depicts a hole creation process within an edit mode according toone embodiment.

FIG. 13 depicts color and texture application to a shape or a partwithin a design model according to one embodiment.

FIG. 14 depicts replication operations performed on an incomplete designaccording to one embodiment.

FIG. 15 depicts tagging shapes to relevant parts according to oneembodiment.

FIG. 16 depicts a data storage folder structure according to oneembodiment.

FIG. 17 depicts data storage file formats for storing shape informationfor blobby shapes and tubular shapes according to one embodiment.

FIG. 18 depicts a data processing system for implementing the process ofFIG. 1 according to one embodiment.

FIG. 19 depicts a design interface wherein concepts associated with auser are selectively displayed as a list of thumbnails is a first axisdirection, and users may be selected in a second axis directionaccording to one embodiment.

FIG. 20 depicts a design interface wherein varying levels of detail aredisplayed to a user according to one embodiment.

FIG. 21 depicts a design interface sketch/edit mode according to oneembodiment.

FIG. 22 depicts a design interface wherein design variations for acomponent are automatically displayed when a user selects the componentin a displayed model according to one embodiment.

FIG. 23 depicts a design interface wherein a shape from a first designmodel is selected and inserted in a display of a second design model.

FIG. 24 depicts a design interface wherein an existing part within adisplayed first design model is replaced by a corresponding part from asecond design model according to one embodiment.

FIG. 25 depicts a design interface wherein an annotation is added to adisplayed design model according to one embodiment.

FIG. 26 depicts a design interface wherein design model is generatedusing combinations of components from different design models.

FIG. 27 depicts redesign of initial models into redefined modelsaccording to one embodiment.

The attached drawings are for purposes of illustration and are notnecessarily to scale.

DETAILED DESCRIPTION

In the following description, some aspects will be described in termsthat would ordinarily be implemented as software programs. Those skilledin the art will readily recognize that the equivalent of such softwarecan also be constructed in hardware, firmware, or micro-code. Becausedata-manipulation algorithms and systems are well known, the presentdescription will be directed in particular to algorithms and systemsforming part of, or cooperating more directly with, systems and methodsdescribed herein. Other aspects of such algorithms and systems, andhardware or software for producing and otherwise processing the signalsinvolved therewith, not specifically shown or described herein, areselected from such systems, algorithms, components, and elements knownin the art. Given the systems and methods as described herein, softwarenot specifically shown, suggested, or described herein that is usefulfor implementation of any aspect is conventional and within the ordinaryskill in such arts.

The present disclosure provides a set of frameworks, process and methodsaimed at enabling the expression, manipulation, and exploration of 3Dfree-form shapes and designs enabled through sketch based modelinginteractions on both desktop and mobile interfaces. In an exampleembodiment, the present disclosure provides sketch-based techniques forgenerating 3D shapes from simple sketch inputs provided by the user.Herein, a set of interactive techniques use for both creating theshapes, modifying their geometry, adding aesthetic or materialproperties, and manipulating them in three dimensional space isprovided. In the second embodiment, an interactive mechanism forconstructing shapes in context of an overall design structure isprovided. The present disclosure also provides various visual means tosupport such in-situ shape creation, and design modeling directly in 3Dspace. Finally, an embodiment where the design model can behierarchically represented as a collection of individual shapes,assembly of functional parts, or a holistic concept, embodying a fulldesign idea within the the design space is provided.

The system 1800 disclosed herein (FIG. 18) is an early-stage designideation tool that enables both 3D content creation, particularly duringthe early-stage design processes where quick design ideation and rapiddesign space exploration are imperative. To support flexibility andintuitive modeling interactions, the system 1800 is preferably used on adigital tablet supporting both pen-based sketching and multi-touchgestures. However, it is also compatible within ordinary PCs, where amouse and keyboard inputs are used for modeling interactions. Theinterface was implemented using an OpenGL based platform and was writtenin C++. It is compatible with a wide variety of desktop based PCs andcommercial digital tablets.

The 3D design workspace (as shown in FIG. 1 and FIG. 2) serves as andvisual medium for creating new designs and interacting with design ideasand concepts. A complete design can be modeled within this workspacealone, as it prevents shifting a user's focus across different views,and also allows creation of new shapes in context of the design. Thereare several advantages to this workspace. First, when creating newshapes within a design, users can directly create them over theiradjoining neighbors. This allows them to interactively model the shapesuch that it not only conforms to its environment, but also has a sizeand structure proportional to the rest of the design. It gives users adirect means to compare their mental idea with respect to the visuallyobservable design, while also allowing for real-time and interactivemanipulation/modification of the shape based on how the user perceivesits in-context appearance.

This workspace is a highly interactive space. This space is receptive toa wide variety of 2D inputs ranging from multi-touch gestures on tabletsand mobile devices, digital pen-tip contacts, mouse clicks, and keyboardcommands. The system automatically recognizes direct contact inputswithin the workspace, and uses ray-casting to determine what 3D elementor region the user is trying to access within the space. This space isdisplayed using a perspective view, to aid depth perception of the 3Delements, and shadows are rendered to assist users perceive relativepositioning between different elements.

To simplify user interactions and ensure quick expression of ideas, thesystem 1800 allows users to create 3D shapes from simple 2D sketchinputs. These inputs are directly drawn on a sketch plane using the penor the mouse. When first starting out with blank workspace, this sketchplane first appears at a central workspace location. For subsequentsshapes however, the plane can be interactively placed at a user definedlocation on the design. The plane can also be freely moved around usinga 3D manipulation widget. Details of plane placement and manipulationwill be discussed later.

Essentially, during the design modeling process, the user simply definesthe cross-sectional silhouette of the shape he wants. The computerautomatically fills in the region between the silhouette boundary with a3D mesh such that the mesh approximates the geometry of the shapeintended by the user. Users can define the silhouettes in two ways.First they can draw a single stroke 2D curve geometry or create apolyline curve by defining the individual vertices of the curve.Additionally, users can also create symmetric curves, by first defininga line of symmetry on the sketch plane and drawing the curve on one sideof this line. The drawn curve is automatically mirrored onto the otherside during the curve drawing process itself. While a freeform sketch isbeing drawn the sampled points are subjected to a single exponentialsmoothing process to ensure smoothness in the resulting curve. The rawsketch data (from both curve types) is also uniformly resampled toensure smoothness in resulting shapes and to avoid geometric artifacts.

There are two types of 3D shapes that can be created using the system1800. These are blobby shapes and tubular shapes, as shown in FIG. 3.Based on existing literature, these type shape types are capable ofsupporting a wide variety of 3D forms, and are particularly useful for3D modeling purposes. They are also highly suitable for early stagedesign given their support for efficient shape creation and designmodeling.

Blobby Shapes are created by first drawing a closed “profile curve” onthe sketch plane (FIGS. 3 and 4). The curve can either be a singlestroke free form curve or a polygon. This curve represents the medialcross sectional silhouette of the intended shape. To allow users tocreate precise profiles, e.g. circles, regular polygons, patterneddesigns etc., we provide a set of predefined template curves. For this,users can simply click on the template button in the shape creationmenu, and access a wide range of templates from a dialog box.Additionally, users can choose to draw symmetric profile curves usingthe symmetry option.

After a profile curve has been defined, the system automatically fillsin the interior of the curve with a 3D mesh in order to generate theshape (FIG. 5). This process involves the following steps: (a) The inner2D region within the profile boundary is populated with a set ofinterior vertices. For this a 2D grid with a predefined resolution isplaced over the profile curve. The grid points lying within the profileare then used as the interior vertices. By using the grid we ensure thatthe interior vertices are uniformly sampled. (b) A constrained delaunaytriangulation algorithm to applied on the boundary and interior verticesto generate a 2D mesh within the profile curve. (c) The interiorvertices are then displaced in a direction normal to the profile curveplane. This displacement is based on a pre-defined inflation function.

The system 1800 provides users with the options to select four differentkinds of inflation functions. The functions are colloquially defined ascircular, tapered, linear, and flat functions. Using iconicrepresentations, we present these functions as four different modes ofblobby shape creations within the front-end user interface. However, inthe back end shape computational system, these functions aremathematically represented and used for displacing the interiorvertices.

Tubular shapes, sweeps, or generalized cylinders serve as highlyversatile shape representations for modeling a wide variety of 3D forms.Such shapes have been shown to allow sufficient complexity and diversitywithin designs, and can be constructed using simple 2D sketch inputs.Tubular Shapes are defined using two open “rail curves”. Similar toprofile curves, these also represent a mid-sectional silhouette oftubular shapes. They are drawn as separate curves, however the systemautomatically recognized when the user intends to start and terminatedrawing of a given rail curve. We can use both freeform or polylinesketch inputs to draw rail curves. Moreover, the symmetry tool can beused to simultaneously draw the two rail curves as mirrored opposites ofone another. This results in a symmetric tubular shape, similar to arevolved extrusion in CAD.

Here, a sweep geometry with a circular cross section is fitted betweenthe two rail curves (FIG. 6). This process comprises of the followingsteps: (a) Each rail curve is resampled such that their points areequally spaced, and have a constant predefined number of vertices. Thisway a direct correspondence can be created between two vertices betweenthe two rail curves. (b) Using this correspondence, a medial trajectorycurve is then computed between the rail curves. This trajectory also hasthe same number of vertices as the rail curves. (c) Circular crosssections, represented by a predefined number of equally spaced vertices,are then defined between each pair of vertices between the rail curves,such that the plane of the cross section passes through a trajectorypoint, and the radius of the cross section is half the distance betweenthe corresponding rail curves. (d) A 3D triangular strip is then drawnbetween consecutive circular cross sections. Each vertex on the crosssection serves as a vertex for creating the triangular strip. Thetriangular stips between all cross sections collectively form the 3Dtubular shape. (d) The start and end cross sections are meshed usingconstrained delaunay triangulation such that the tube is a closed 3Dvolume.

The sketch plane is a very fundamental element within the 3D designworkspace, as it is used to scaffold all shape creation process. In theprevious sections, we described how to create a shape on the sketchplane, but the ability to spatially define the plane within theworkspace is also an essential part of system 1800, as it directlysupports in context creation of shapes over a design under progress.

As described above, the default location of the sketch plane for thefirst shape is at the center of the workspace. However, for ensuingshapes, users can choose to either place the plane normal or tangentialto a given shape on the under-progress design. For this, users simplyneed to select the placement option, and click over the desiredplacement location. In addition to obtaining the tangent or orthogonaldirection, the back end system also automatically detects the directionof the major axis of the plane (longer edge), such that the planeorientation is consistent with the most convenient direction to drawcurves (FIG. 7).

The aforementioned placement however is only an initial placement, i.e.users can further refine it using a 3D manipulation widget (FIGS. 8 and9). Whenever a plane is initially defined in the workspace, it isautomatically associated with a 3D manipulation widget, comprising ofthree axes and arcsbetween the axes. Click and dragging the axes linescauses the plane to translate in that direction, while doing the same onthe arcs causes the plane to rotate along the arc. Thus, users can applya sequence of such transformations to refine or alter the placement ofthe sketch plane.

The profile or rail curves for the two shapes types in system 1800 canbe drawn directly on the sketch planes. It does not matter what theorientation of the plane is while drawing the curves. User can rotatethe design model and/or the plane to any convenient drawing orientation.Users can also manipulate the view of the 3D workspace in the middle ofthe drawing process to be able to see the sketched curves from differentperspectives and scales. When defining a shape in context of anunder-progress design, all the curves on the sketch plane are renderedin front of all the other geometries. This way users can observe exactlyhow their intended shape will look like at its location within thedesign, and also not have to worry about occlusions when defining theshape.

Very frequently during design prototyping, the initial placement of ashape in the design need to be changed either to refine the shape'splacement, test different configurations, or include another shapewithin the vicinity. In fact, for an early stage conceptualizationprocess being able to quickly alter the placement of shapes leads torapid exploration of different product forms and navigation of thedesign space. To support such modeling and design explorationcapabilities, system 1800 allows for interactive 3D manipulation of theindividual shapes in a quick and efficient manner.

Just as with the manipulation of the sketch plane, the individual shapesin the design can also be manipulated using a 3D manipulation widget(FIG. 9). When a shape is selected with a single click or tap gesture,the widget is automatically placed over the shape such that its originis at the shape's centroid and the axes are aligned with the principledirection of the shape. Once again, dragging the axes or arcs of thewidget causes that shape to transform along that direction.

In addition to spatially moving the shapes around, users can also alterthe scale of the shape. This can be done by simply applying a pinchgesture on the tablet, or a SHIFT+drag gesture on the desktop interface.The back end system uses a predefined scaling factor to uniformly scalethe shape. The sign of scaling (increase or decrease) is based on themotion of the dragging operation. An outward pinch or a mouse motiontowards the shape indicates increased scaling, while the opposite motionindicates a decreased scaling. For blobby shapes, the inflationmagnitude can also be altered. For this the widget comprises of aninflation scaling handle which can be dragged along the direction ofinflation magnitude change.

At any point during the design modeling activity, the entire designmodel can also be rotated about its center (using an arcball rotationgesture), translated along a z-parallel plane (using a two finger draggesture or CTRL+mouse drag on desktop), or scaled (using a two fingerpinch gesture or ALT+mouse drag on desktop). These operations allowusers to quickly adjust the viewing perspective and scale of the designmodel during new shape creation or general inspection processes.

The in context shape creation process in the 3D workspace is primarilyintended to define the general outline of how a given shape should looklike. In addition to that, users have the capability to further refinethe shape, modify its geometry at a finer level of detail, and includefeatures that couldn't be applied during shape creation at a globalcontext. For this, the system 1800 interface provides a shape editingmode. The edit mode can be invoked by by selecting a shape with a doubletap gesture. Here, the workspace switches to a 2D sketch canvas with theshape's profile or rail curves displayed in a front facing view. Byusing a separate 2D view, we can provide a larger display of the profilecurves, making them amenable to the operations that require finer levelof control and precision than what is possible in the 3D workspace. The2D canvas during edit mode is provided with a regular grid to assistprecise placement of sketch inputs, and in the case of polyline inputs,automatic snapping to the grid points. The following operations can beperformed during the edit mode.

Overdrawing is a highly efficient curve editing technique that allowsusers to alter local regions on a curve by simply drawing over it usingthe system 1800 (FIG. 10). It is very similar to how we would correct ormodify sketches on a paper, i.e. by drawing the improved strokesdirectly over the old ones. When providing an overdrawing stroke, justas with the shape creation process, users can utilize either thefreeform or the polyline curve drawing option. The overdrawing techniquecan be used for several purposes. First, users can correct errors theymight have made during the initial shape creation process. Second, theymay choose to modify the geometry of the underlying curve so that theresulting shape in the design is altered based on evolving designdecisions. Finally, this method also enables users to apply fine leveldetails on the underlying curves (and resultantly on the shapes). Suchdetails are hard to apply during initial shape creation because thescale of the shape and their underlying curves is at a smaller rangewithin the 3D workspace. In the edit mode, the curves are magnified anddisplayed on a fronto-parallel view so that precise inputs are easier toapply on them.

For a blobby shapes, the overdrawn curves are drawn in such a way thattheir starting ending points are close to the profile of the shape (FIG.11). Upon removing the stylus tip (or releasing the mouse button), theback end system automatically determines that the stroke input was meantas a overdrawn curve. The system then applied a curve merging algorithm,resulting in the overdrawn curve to replace the portion of the profilecurve it is drawn over. This technique can be used in a similar mannerto edit or add details to the rail curves of tubular shapes. However,given the open-endedness of these shapes, overdrawing can also be usedto either extend a rail curve or truncate it at a certain point.Overdrawing a curve entirely across an existing profile or rail curveresults in the entire curve being replaced by the overdrawn curve.

Very frequently shapes within physical products contain holes forseveral reasons such as weight and material reduction, aesthetic qualityenhancement, and functional spacing. In the edit mode users can defineas many holes as they like within a blobby shape. This can be done bysimply selecting the hole option and drawing a closed freeform orpolygon curve within the boundary of the profile curve we want a holeinside (FIG. 12). Upon exiting the edit mode, the 3D inflated meshupdates itself such that the hole feature within the shape is alsoaccounted for. Here, in the remeshing process, the interior points aresampled such that they only lie between the shape profile boundary curveand the boundaries of the holes defined within the profile curve. Therest of the operations are exactly identical for constructing theresulting blobby shape.

Just as with the profile curve drawing process, the interface alsoallows users to borrow pre-defined template curves to serve as holeswithin a given blobby shape. Our system can automatically detect whetheror not a hole fully resides within the profile curve, and gives an errorwarning to the user if this condition is not met. Additionally, thesystem is also cognizant of holes being too close to the profileboundary curve, in order to preclude extremely thin features (whichresult in geometric artifacts). The hole curves are also amenable tomodification, detailing, and refinement at any point during the designmodeling activity. For this, the user simply needs to go the edit modefor the relevant shape (containing the hole to be edited), and apply theoverdrawing inputs in order to modify the hole shape.

While the three dimensional form of a design model provides visualinformation on its structure, hierarchical organization ofcomponents/shapes, and the interrelationships between different partsand shapes, color and texture provide additional dimensions of designinformation that can be imparted with an idea or a concept. For example,textures allow designers to communicate what type of material a givenshape or part could be made of, and allude towards downstreammanufacturing and production capabilities/decisions. Texture can alsoimpart broad level information on a given part or shape's physicalproperties such as mass, thermal/electrical conductivity, surfacesmoothness and traction, malleability etc. Moreover, textures and colorscan significantly enhance the aesthetic quality of a design, and providethe design model with a general finished appearance even at the earlystages of the design process.

To apply the texture over a shape using the system 1800, users simplyneed to select it first and hit the texture button (FIG. 13). This opensup a texture dialog box, with a set of predefined textures. The texturesare organized according to specific material properties. While thedefault Sketch-2-3 interface provides a broad range of texturecategories, users can also add to this library additional textureswithin each category or even create new texture categories. The sameprocess can be used for applying color over a given shape, except here acolor dialog box opens up. Inside this box, users can either select froma set of predefined colors or customize a color by adjusting the RGBvalues. Users can also choose to apply both color and texture to a givenshape. This allows users to create more variability in how they expressmaterial information on a design.

To enable users to quickly generate a pattern or symmetrical arrangementof common shapes, the system 1800 allows for copying and mirroringoperations. To copy a shape users simply need to select it, hit the copycommand, and define where to place it by clicking in the workspace.Mirroring operations are performed across another reference shape. Here,the shape to be mirrored is first selected, the mirror command entered,and finally the shape about which the mirror is to be performed isselected (FIG. 14). This process results in the initial shape to becopied, and the replica to be placed such that it is mirrored across theunderlying plane of the second shape.

Initially when the design is constructed, it only exists as a collectionof shapes, spatially arranged to achieve the form of an intended design.However the structure of a 3D design is much more complex than that.Different shapes often perform as components within a given part with aspecific function in the part. Quite often, designers will want thecapability to segment such parts for various design reuse andreinterpretation purposes.

To support grouping of shapes into functional parts or meaningfulclusters within the design, we provide tagging capabilities.Essentially, when working within a certain design context, users canpre-define the parts the design context will comprise of across multipleiterations or variations of design ideas. Upon constructing eachvariation, users can simply select a shape, and assign it to one of thepre-defined parts. We call this tagging. Just as with individual shapes,parts can also be selected within the 3D workspace. Selected parts canthen be subjected to operations such as spatial manipulation with a 3Dwidget, color/texture additions, and replication operations. Here, allthe shapes included in the part gets subjected to the operations appliedto the part (FIG. 15).

Each design model is stored in a folder with a distinct numerical IDs.Just as with the design model, this folder is also hierarchicallydivided into subfolders, each containing shapes from a specific part,and also includes a temporary folder for untagged shapes (FIG. 16). Tostore shape information, we defined a text file format containing the 3Dvertices of the shapes underlying profile curves along with otherappearance data (e.g. texture file location, scale, inflation magnitudeetc., see FIG. 17). Whenever a design is imported or loaded, themetadata from each shape file is read by the system and correspondingshapes regenerated in the workspace.

In the presently disclosed system, the design explorer interface is thecentral element that supports all team-first design activities such asdesign data storage, hierarchical design information retrieval, designspace navigation, and design reuse/reinterpretation. It visuallyrepresents the design concept space developed by the design team, andserves as a medium for storing, browsing, sharing and accessing designideas. The design explorer can be directly opened and viewed within the3D workspace, and is represented as a list of thumbnails, each showing aspecific design concept. Each concept can be further expanded into asub-menu displaying a closeup view of the individual parts within thedesign. The design explorer comprises of the following attributes thatto support efficient navigation of the design concept space and fluidsharing of design ideas across team members.

As illustrated in FIG. 19, the design explorer can be viewed as a singlecolumn menu with concept thumbnails listed as menu items. At a giveninstance the explorer displays the most recent designs from a particularteam member, and can be vertically scrolled to view his/her previousconcepts. It can also be laterally scrolled to view designs across otherteam members. This organization of the explorer is used for severalreasons. First, it allows us to group design concepts by specificdesigners, allowing team members to know where each shared design camefrom. Second, a single column view helps avoid clutter within the designworkspace, while still allowing designers to navigate the concept spaceduring a modeling activity. It shall be understood that other variationson this arrangement may be used. For example, the user concepts may bealternately displayed in the row and laterally scrolled, with the userselection being vertically scrolled.

Being able to observe and reflect on others' ideas during a designactivity not only inspires creativity but also helps identify newpossibilities in one's own design. Thus, the design explorer of FIG. 19may be opened at any point during a design activity, and its placementappears within the 3D workspace itself. Given that the explorer is onlya list of thumbnails, it can be placed such that it is non-intrusive tothe visibility of the 3D workspace and its constituent design modelunder progress. Thus, a user can concurrently browse through theexplorer while creating his/her design model, without having toexplicitly switch modes or enter a new window/view.

An important advantage of 3D design representation is that it providesdesigners with the ability to hierarchically deconstruct a design idea,and work with it at varying levels of details. Thus, the design explorerof FIG. 19 supports navigation of the design concept space in ahierarchical manner such that users can not only browse through multipledesign concepts in their entirety, but also take a closer lookinteresting or relevant designs at different levels of details, as shownin FIG. 20. As shown in FIG. 20, users can view a design concept atvarying levels of details, namely (a) full design concepts, (b)individual design parts, (c) constituent shapes, and (d) underlyinggeometries. This also allows designers to only share/retrieve designinformation pertinent to a specific context or level of detail, withouthaving to import the full model itself. Thus, hierarchical navigationfacilitates streamlined sharing and exchange of design information,making the overall system amenable using cloud-based data storagestructures. The ability to hierarchically decompose and browse throughconcepts allows users to search for creative inspiration within focusedcontexts and uncover design solutions and new ideas pertinent tospecific levels of details.

The design explorer of FIG. 19 by default shows thumbnails of the fulldesign concepts. When a given concept is selected in the explorer, asecondary menu pops up with thumbnails showing a close up view of theconcept's constituent parts, separate from the design. The designexplorer can also be extended to an edit mode as shown in FIG. 21 wherethe underlying geometric entities defining specific design shapes can beshared and borrowed. Thus, the design explorer adapts its content basedon whether the design activity is in the 3D modeling or 2D editing mode.

Hierarchical navigation is consistent with the notion of working withmultiple design ideas in parallel. Being able to view different conceptsin the design explorer, while working on their own designs, helpsinspire new ideas not just for their current design, but also fordivergent concepts they went on to explore in future iterations. Thepresently disclosed design explorer interface takes this a step furtherby allowing users to work with multiple designs not just at the conceptlevel, but also at the part and shape levels.

The hierarchical structure of 3D designs can have multiple levels ofdetails, starting from the overall design concept, to the individualparts, their constituent shapes, and the underlying geometry definingthe shapes. Thus, if a designer chooses to browse through the conceptspace with respect to a lower level design information, he/she will haveto go through all higher level design information first. To prevent suchtedious navigation of the concept space, the presently disclosed designinterface allows users to isolate specific design components orinformation that are relevant to a particular modeling activity as shownin FIG. 22. This also enables designers to efficiently search for ideaswith respect to a specific design context. The mode of FIG. 22 may alsobe used when a design model is active within the 3D workspace. Byselecting a specific part or shape on the design model, users can filterthe explorer such that only the corresponding parts from the conceptspace are displayed. Here, the selection in the modeling space serves asa query input for filtering the explorer content. This mode is mainlyused to search for specific parts or shapes for a design already underprogress. As a user progresses through a design model, he/she mayrequire specific things that can be quickly obtained using the filteringmechanism in the design explorer. It serves as an efficient means toquickly search and identify a relevant part (or shape) without goingthrough multiple menu levels, while enabling collaborative operationssuch as substituting parts or shapes in the design, or finding asuitable design component.

The newest designs in the concept space typically represent the mostrecently developed ideas. In fact, within a collaborative designscenario, the most recent designs are those that have been derived fromprior iterations, and polished through several stages of development. Incertain embodiments, such newer designs are displayed first to providedesigners with a quick overview of the current state of the designconcept space. It also prevents designers from having to dwell overdefunct design concepts or ideas, and helps avoid pitfalls or mistakesencountered by other team members at a previous time.

To ensure that each member gets credit for his contributions and totrack the history of a design's evolution, each concept should beidentifiable to its author. In certain embodiments, at any giveninstance, the presently disclosed design explorer interface displays thedesigns of one user. However, designs by other users can be viewed andaccess simply by scrolling across different user ids. Within the designexplorer, a single column or strip of thumbnails represent designscreated by a specific user. A designer within a team can opt out of thedesign project. However, once uploaded to the shared repository, his/herdesigns remain within the explorer for the remaining duration of thedesign project.

The presently disclosed system maintains two distinct repositories forstoring and retrieving design data. These are the local repository andthe shared repository. During a design activity, users can choose toshare their designs and ideas only when they feel ready to do so. Thishelps avoid evaluation apprehension, and provides team members with thefreedom for independent thinking without having to fear judgement offleeting ideas or premature thoughts. This also allows them to developan idea to a level, which they can confidently claim ownership of. Eachdesign created by users is initially stored locally within theirindividual systems. This local repository is only accessible to thatparticular user. At this point, the private designs of a given user aredisplayed only in his/her respective design explorer. However, users caninvoke the upload option in order to transfer the design content intothe shared repository. Once a design has been shared, it is visible inthe design explorer across all design team members, and can be accessedfor reuse or reinterpretation.

During a design activity, users can browse through the design explorerand import any design or its component from the explorer directly intotheir workspace. Here also, the hierarchical and filtered browsing modescan be leveraged to import either the entire concept or just a specificcomponent. Design data can be imported from the explorer in two ways.

Insert operation: As shown in FIG. 23, this operation makes a copy of afull design model or a single part and places it in the workspace at alocation specified by the user. It does not displace or remove any ofthe design components prior to the insertion operation. Instead, thisoperation can be used to add new shapes, components, or design featureswithin the design under progress. It is also a useful tool to fill invoids within the design or reduce modeling time by quickly borrowing orrepurposing a design component from within the concept space. FIG. 23illustrates inserting a shape from another design concept within the 3Dworkspace: (left) Using the design explorer to Identify a shape(handlebar) to add to the 3D design model in the 3D workspace, (right)Placing the inserted location at a specific location in the workspace.

Replace operation: A given part in the workspace can be substituted witha corresponding part from another design in the explorer as shown inFIG. 24. This operation first removes the original part from theworkspace, generates a copy of the new part, and places it at the samelocation in the design. In order to match the location and orientationof the previous shape, computes the minimum bounding box of the twoparts. The new part is then scaled and oriented in such a way that itsbounding box matches the size of the bounding box of the previous part,and the two are also aligned along their principal directions. Besidesreplacing individual parts, a full design model can also be replacedwith another concept model, if the user chooses to do away with thewhole design.

Annotate operation: Users can accompany their designs, or specificdesign components with annotations and comments in order to bettercommunicate the information about the design concepts and their ideas asshown in FIG. 25. In addition, comments also stand out as means toelicit feedback or request help in improving, refining, or advancing acertain design concept. Users can annotate a design or a component bysimply clicking on it and hitting the comment button. This invokes atext entry window, where users can add their comments and also sketchout visual information, similar to a paint application. This annotationis always associated with its respective design content and can beaccessed by other designers when placed within the shared repository.

Chat operation: The chat box in Co-3Deator allows designers to sendprivate or group messages electronically. This messaging system isparticularly useful for distributed design teams where direct verbalcommunication is not feasible, or for sending information to specificteam members in a private manner. In addition to textual messages, userscan also share design ideas through this chat box by privatelytransferring design data files of images (screenshots) to specificcollaborators.

Modify operation: It is not essential that the imported design componenthas to be retained in its exact form. Users can always apply editingoperations to change its form, scale, or appearance. This way users cancreate a wide variety of variations of a given design. In fact, shapesor design components can also be reinterpreted to allow designers to useideas from one context within a completely different context. Being ableto borrow, reuse, and reinvent existing design concepts leads to a moreexpansive exploration of the concept, a larger number of early-stageideas, and more insights leading to better product development.

Each team member can use the 3D modeling features of the presentlydisclosed system to generate as many design concepts as they can ontheir own. While the system serves as a team-first ideation tool, bynecessity it also comprises elements from a designer-first tool. This isbecause in order to support any collaborative design process, thereneeds to be some form of a design concept space available. Thus,individual design creation can be used by design teams to initialize theconcept space. The main strength of a team-first approach however liesin its support towards creative productivity. Here, inputs from multipleusers along with the combinatorial and divergent affordances of theconcept component hierarchy allow design teams to rapidly expand theirconcept space. The system supports creative work where the focus is oncreating multiple, separate, and diverse content, often drawing on othercollaborators. This kind of productivity cannot be achieved with just adesigner-first approach. Such “team-first” design operations are asfollows.

The goal of combinatorial design operations is to expand the conceptspace through quick combination of parts and shapes from differentdesigns available in the design explorer. Here, users can deconstructindividual designs at various levels of details and combine specificcomponents from different design concepts to generate new concepts usingthe presently disclosed system. The concept component hierarchy drivingthe 3D design models in Co-3Deator provides users with the freedom toselectively choose what level of design information to work with from agiven concept. However, simply putting parts together does not lead toan aesthetic or structurally sound design. Instead, the ability toisolate, manipulate, and reconfigure individual shapes within a givenpart is what allowed users to adapt it to a new design context. As shownin FIG. 26, the presently disclosed system provides users with theability to not only change the scale and appearance of an importedshape, but also modify its geometry so that it better fits new designcontext.

Combinatorial design in the presently disclosed system can be approachedin several ways. One approach entails importing a central part thatserves as a base or foundational structure of the new design model,followed by adding other parts that fit well with it. This approach isanalogous to how we assemble a product in real life, where a primarystructure is first established and then the rest of the parts assembledon top. Another approach involves browsing through the explorer andimporting all parts that stand out as potentially providing some value.Various configurations can then be tested out with these parts, whilepruning out those that didn't work with the intended design context.This approach ultimately converges to a specific design concept, andallows designers to visually explore many different options andpossibilities within the design concept space.

Using the design explorer interface system disclosed herein, designerscan also take an existing design and redefine it into a new concept,however they find it fit. They could either choose a design created bythemselves at a previous time, and branch it into a different version,generate a design variant of their teammates' design, modify it to forman entirely different design concept, or improve upon an existingdesign. Here also the concept component hierarchy gives users theflexibility to alter a design at multiple levels of detail. Thus, theredefinition can occur at a shape, part, or the entire design conceptlevel. When redefining a design, the original version is retained withinthe design explorer, such that multiple designers can drive it indifferent directions. This also allows the design team to keep a historyof a given design, and enable each member to track its evolution.

The following collaborative design operations can be performed using thedesign redefinition capabilities in the presently disclosed system:completing, extending, branching and reinterpretation, as shown in FIG.28 and described below.

Completing: Given the time limits within collaborative design worksessions, some designs might exist as incomplete models within thedesign explorer. Incomplete designs can also occur as one designer mightstumble upon a roadblock while developing a certain concept. In suchcases, there is a strong likelihood that other team members are inclinedto bring such designs to a closure or completion. Thus, users can takean existing design that presents a scope for improvement, and furtherwork upon it such that it meets the functional and structuralrequirements.

Extending: It is very common for users to seek out ways to augment adesign either to improve its functionality or add another capability.The design explorer provides users with a visual means to not only drawupon designs from their collaborators, but also judge what was earliermissed in every design concept with the design space generated. Thisprovides design team members to identify what could work better in theircollaborators' designs and further add upon it to create an improvedversion.

Branching: This process involves taking an existing design and applyingmodifications such that results in a variant of the original concept,but novel enough to stand on its own. Such variants can be obtained bychanging the color, texture, and style of one or more parts within adesign. Branching is primarily useful in versioning a given designconcept, and creating different models of a product context.

Reinterpretation: To save time, users can borrow one or more shapes froma specific part and repurpose them into another object with an entirelynew meaning and function. In fact, the shapes repurposed can be usedwithin a different design context as well. This provides design teams toparallely work with different design contexts in their projects, whilestill maintaining exchange of design information across contexts.

To close a collaborative design ideation activity, design teamsfrequently perform a final concept selection task in order tocollectively reflect on the overall design concept space and identifyfinal concepts to push towards downstream design processes. During thisactivity, users can simply browse through the design explorer andinspect each design at varying levels. The designs and their componentscan also be imported into the 3D workspace interface of the disclosedsystem for closer inspection and evaluation of design concepts. Thedesign team members can then either utilize verbal discussion, in personor through digital communication media, or communicate through the chatmechanism in their workspaces, to decide upon the final concepts.

For refining the final concepts, the design team can also collectivelyrefine the final concepts to everyone's liking and to ensure that thedesign objectives are met. For this, a collaborative designing mode isprovided in the presently disclosed system, where a common interface isshared across all users. Here, each user is able to see the eventswithin the common interface on his/her personal device. However, onlyone user is able to interact with the interface at a given time. This iscontrolled through an explicit active user specification mechanism, andcan be decided by the users themselves. During the collaborative designmode, the active model within the common 3D workspace is stored withinthe shared repository. The interface in each team member's deviceconstantly listens to changes to the active design model, and updatesthe 3D model in each device. This allows each member to observe realtime changes within the concepts under refinement. Additionally, itallows the active user can also illustrate ideas through direct examplesand 3D modeling illustrations, as he/she is verbally explaining.

FIG. 18 is a high-level diagram showing the components of one example ofthe system 1800 for analyzing data and performing other analysesdescribed herein, and related components. The system 1800 includes aprocessor 1886, a peripheral system 1820, a user interface system 1830,and a data storage system 8. The peripheral system 1820, the userinterface system 1830 and the data storage system 1840 arecommunicatively connected to the processor 1886. Processor 1886 can becommunicatively connected to network 1850 (shown in phantom), e.g., theInternet or a leased line, as discussed below. It shall be understoodthat the system 1820 may include multiple processors 1886 and othercomponents shown in FIG. 18. The 3D sketch and object data describedherein may be obtained using network 1850 (from one or more datasources), peripheral system 1820 and/or displayed using display units(included in user interface system 130) which can each include one ormore of systems 1886, 1820, 1830, 1840, and can each connect to one ormore network(s) 1850. Processor 1886, and other processing devicesdescribed herein, can each include one or more microprocessors,microcontrollers, field-programmable gate arrays (FPGAs),application-specific integrated circuits (ASICs), programmable logicdevices (PLDs), programmable logic arrays (PLAs), programmable arraylogic devices (PALs), or digital signal processors (DSPs).

Processor 1886 can implement processes of various aspects describedherein. Processor 186 can be or include one or more device(s) forautomatically operating on data, e.g., a central processing unit (CPU),microcontroller (MCU), desktop computer, laptop computer, mainframecomputer, personal digital assistant, digital camera, cellular phone,smartphone, or any other device for processing data, managing data, orhandling data, whether implemented with electrical, magnetic, optical,biological components, or otherwise. Processor 186 can includeHarvard-architecture components, modified-Harvard-architecturecomponents, or Von-Neumann-architecture components.

The phrase “communicatively connected” includes any type of connection,wired or wireless, for communicating data between devices or processors.These devices or processors can be located in physical proximity or not.For example, subsystems such as peripheral system 1820, user interfacesystem 1830, and data storage system 1840 are shown separately from thedata processing system 1886 but can be stored completely or partiallywithin the data processing system 1886.

The peripheral system 1820 can include one or more devices configured toprovide digital content records to the processor 1886. For example, theperipheral system 1820 can include digital still cameras, digital videocameras, cellular phones, or other data processors. The processor 1886,upon receipt of digital content records from a device in the peripheralsystem 1820, can store such digital content records in the data storagesystem 1840.

The user interface system 1830 can include a touchscreen, hand-heldstylus, mouse, a keyboard, another computer (connected, e.g., via anetwork or a null-modem cable), or any device or combination of devicesfrom which data is input to the processor 1886. The user interfacesystem 1830 also can include a display device, a processor-accessiblememory, or any device or combination of devices to which data is outputby the processor 1886. The user interface system 1830 and the datastorage system 1840 can share a processor-accessible memory.

In various aspects, processor 1886 includes or is connected tocommunication interface 1815 that is coupled via network link 1816(shown in phantom) to network 1850. For example, communication interface1815 can include an integrated services digital network (ISDN) terminaladapter or a modem to communicate data via a telephone line; a networkinterface to communicate data via a local-area network (LAN), e.g., anEthernet LAN, or wide-area network (WAN); or a radio to communicate datavia a wireless link, e.g., WiFi or GSM. Communication interface 1815sends and receives electrical, electromagnetic or optical signals thatcarry digital or analog data streams representing various types ofinformation across network link 1816 to network 1850. Network link 1816can be connected to network 1850 via a switch, gateway, hub, router, orother networking device.

Processor 1886 can send messages and receive data, including programcode, through network 1850, network link 116 and communication interface1815. For example, a server can store requested code for an applicationprogram (e.g., a JAVA applet) on a tangible non-volatilecomputer-readable storage medium to which it is connected. The servercan retrieve the code from the medium and transmit it through network1850 to communication interface 1815. The received code can be executedby processor 1886 as it is received, or stored in data storage system1840 for later execution.

Data storage system 1840 can include or be communicatively connectedwith one or more processor-accessible memories configured to storeinformation. The memories can be, e.g., within a chassis or as parts ofa distributed system. The phrase “processor-accessible memory” isintended to include any data storage device to or from which processor186 can transfer data (using appropriate components of peripheral system1820), whether volatile or nonvolatile; removable or fixed; electronic,magnetic, optical, chemical, mechanical, or otherwise. Exemplaryprocessor-accessible memories include but are not limited to: registers,floppy disks, hard disks, tapes, bar codes, Compact Discs, DVDs,read-only memories (ROM), erasable programmable read-only memories(EPROM, EEPROM, or Flash), and random-access memories (RAMs). One of theprocessor-accessible memories in the data storage system 1840 can be atangible non-transitory computer-readable storage medium, i.e., anon-transitory device or article of manufacture that participates instoring instructions that can be provided to processor 186 forexecution.

In an example, data storage system 1840 includes code memory 1841, e.g.,a RAM, and disk 1843, e.g., a tangible computer-readable rotationalstorage device such as a hard drive. Computer program instructions areread into code memory 1841 from disk 1843. Processor 186 then executesone or more sequences of the computer program instructions loaded intocode memory 1841, as a result performing process steps described herein.In this way, processor 1886 carries out a computer implemented process.For example, steps of methods described herein, blocks of the flowchartillustrations or block diagrams herein, and combinations of those, canbe implemented by computer program instructions. Code memory 1841 canalso store data, or can store only code.

Various aspects described herein may be embodied as systems or methods.Accordingly, various aspects herein may take the form of an entirelyhardware aspect, an entirely software aspect (including firmware,resident software, micro-code, etc.), or an aspect combining softwareand hardware aspects These aspects can all generally be referred toherein as a “service,” “circuit,” “circuitry,” “module,” or “system.”

Furthermore, various aspects herein may be embodied as computer programproducts including computer readable program code stored on a tangiblenon-transitory computer readable medium. Such a medium can bemanufactured as is conventional for such articles, e.g., by pressing aCD-ROM. The program code includes computer program instructions that canbe loaded into processor 1886 (and possibly also other processors), tocause functions, acts, or operational steps of various aspects herein tobe performed by the processor 1886 (or other processor). Computerprogram code for carrying out operations for various aspects describedherein may be written in any combination of one or more programminglanguage(s), and can be loaded from disk 1843 into code memory 1841 forexecution. The program code may execute, e.g., entirely on processor1886, partly on processor 186 and partly on a remote computer connectedto network 1850, or entirely on the remote computer.

The invention is inclusive of combinations of the aspects describedherein. References to “a particular aspect” and the like refer tofeatures that are present in at least one aspect of the invention.Separate references to “an aspect” (or “embodiment”) or “particularaspects” or the like do not necessarily refer to the same aspect oraspects; however, such aspects are not mutually exclusive, unless soindicated or as are readily apparent to one of skill in the art. The useof singular or plural in referring to “method” or “methods” and the likeis not limiting. The word “or” is used in this disclosure in anon-exclusive sense, unless otherwise explicitly noted.

The invention has been described in detail with particular reference tocertain preferred aspects thereof, but it will be understood thatvariations, combinations, and modifications can be effected by a personof ordinary skill in the art within the spirit and scope of theinvention.

1. A 3D modeling system, comprising: a) a computer processing unit; b) adigital memory; and c) an electronic display, the computer processingunit and the digital memory configured to: d) using the electronicdisplay, provide 3D model representations of a first plurality ofversions of an object component for a first user, the versions beingselectable along a first axis; and e) using the electronic display,provide a plurality of user identifications which are selectable along asecond axis, wherein selecting a subsequent user causes a secondplurality of said versions of said object component to be displayed onthe electronic display.
 2. The 3D modeling system of claim 1, whereinthe first axis and the second axis intersect.
 3. The system of claim 2,wherein the first and second axis are orthogonal.
 4. The system of claim1, wherein the computer processing unit and digital memory are furtherconfigured to display a plurality of components belonging to a firstcomponent category when the user selects a component belonging to thefirst category on a model being displayed.
 5. The system of claim 1,wherein the computer processing unit and digital memory are furtherconfigured to display a working object model and an interface menucomprising a plurality of separate object models, receive a userselection of one of the object models, display a plurality of componentdesigns corresponding to the selected object model, and insert one ofsaid component designs into the working object model based on userselection of the component.
 6. The system of claim 5, wherein thecomputer processing unit and digital memory are further configured toallow the user to modify the selected component after insertion into theworking object model.
 7. The system of claim 1, wherein the computerprocessing unit and digital memory are further configured to display aworking object model and an interface menu comprising a plurality ofseparate object models, receive a user selection of one of the objectmodels, display a plurality of component designs corresponding to theselected object model, and replace a component in the working model withone of said component designs based on user selection of the component.8. The system of claim 7, wherein the computer processing unit anddigital memory are further configured to allow the user to modify theselected component after said replacement.
 9. The system of claim 1,wherein the computer processing unit and digital memory are furtherconfigured to annotate a working object model with information enteredby a user.